Brisanje promejlivih i pretpostavki na početku
clear all
Definisanje simbola, odnosno nepoznatih
syms ig iL iR1 iR2 iC u1 u2 uL uC DiL DuC R1 R2 R C L t U
Jednacine
jednacine = [ig == iR1 + iL, iL == iC + iR2,...
u1 == uL + uC, uC == u2,...
u1 == R1*iR1, u2 == R2*iR2, uL == L*DiL, iC == C*DuC]
jednacine = 
jednacineIzvoda = eliminate(jednacine, [iR1, iR2, iC, u1, u2, uL])
jednacineIzvoda = 
izvodiStanja = solve(jednacineIzvoda, DuC, DiL)
izvodiStanja = struct with fields:
DuC: -(uC - R2*iL)/(C*R2) DiL: -(uC + R1*iL - R1*ig)/L
syms iL(t) uC(t) DuC(t) DiL(t) ig(t)
promenljiveStanja = [iL == iL(t), uC==uC(t)]
promenljiveStanja(t) = 
jednacineStanjaFun = subs([diff(uC)==izvodiStanja.DuC; ...
diff(iL)==izvodiStanja.DiL;],...
lhs(promenljiveStanja), rhs(promenljiveStanja))
jednacineStanjaFun(t) = 
Zamene
zamene = [R1 == R, R2 == R, L == C*R^2, ig == heaviside(t)]
zamene(t) = 
jednacineStanjaFunR = subs(jednacineStanjaFun, lhs(zamene), rhs(zamene))
jednacineStanjaFunR(t) = 
Resavanje sistema diferencijalnih jednacina
assume(R>0 & C>0 & L>0 );
resenjeDiff = dsolve(jednacineStanjaFunR, [uC(0)==0; iL(0)==0])
resenjeDiff = struct with fields:
iL: exp(-t/(C*R))*sin(t/(C*R))*(sign(t)/4 - (exp(t/(C*R))*(sign(t)/2 + 1/2)*(cos(t/(C*R)) - sin(t/(C*R))))/2 + 1/4) - exp(-t/(C*R))*cos(t/(C*R))*(sign(t)/4 - (exp(t/(C*R))*(cos(t/(C*R)) + sin(t/(C*R)))*(sign(t)/2 + 1/2))/2 + 1/4) uC: - R*exp(-t/(C*R))*sin(t/(C*R))*(sign(t)/4 - (exp(t/(C*R))*(cos(t/(C*R)) + sin(t/(C*R)))*(sign(t)/2 + 1/2))/2 + 1/4) - R*exp(-t/(C*R))*cos(t/(C*R))*(sign(t)/4 - (exp(t/(C*R))*(sign(t)/2 + 1/2)*(cos(t/(C*R)) - sin(t/(C*R))))/2 + 1/4)
f_uC = simplify(rewrite(resenjeDiff.uC, 'Heaviside'))
f_uC = 
g_uC = simplify(diff(f_uC))
g_uC = 
fplot(t, subs(g_uC, [R C], [1e3 1e-6]), [0 0.01])
grid on